IBIS Macromodel Task Group

Meeting date: 16 January 2024

Members (asterisk for those attending):
Achronix Semiconductor:       Hansel Dsilva
Amazon:                       John Yan
ANSYS:                      * Curtis Clark
                            * Wei-hsing Huang
Aurora System:              * Dian Yang
                              Raj Raghuram
Cadence Design Systems:     * Ambrish Varma
                            * Jared James
Dassault Systemes:            Longfei Bai                             
Google:                       Hanfeng Wang
                              GaWon Kim
Intel:                      * Michael Mirmak
                            * Kinger Cai
                              Chi-te Chen
                              Liwei Zhao
                              Alaeddin Aydiner
Keysight Technologies:        Fangyi Rao
                              Majid Ahadi Dolatsara
                              Stephen Slater
                              Ming Yan
                              Rui Yang
Marvell:                      Steve Parker
Mathworks (SiSoft):         * Walter Katz
                              Graham Kus
Micron Technology:            Justin Butterfield
Missouri S&T:                 Chulsoon Hwang
                              Yifan Ding
                              Zhiping Yang
Rivos:                        Yansheng Wang
SAE ITC:                      Michael McNair
Siemens EDA (Mentor):       * Arpad Muranyi
                            * Randy Wolff
Teraspeed Labs:               Bob Ross
Zuken USA:                  * Lance Wang

The meeting was led by Arpad Muranyi.  Curtis Clark took the minutes.

--------------------------------------------------------------------------------
Opens:

Arpad noted that the meeting scheduled for January 30th will be cancelled.
  January 30, 2024 (cancelled - DesignCon week)
  
-------------
Review of ARs:

Arpad: Email Zhiping to ask whether he still plans to work on item 17 (now
       item 14) in the Tabled topics list, or whether we can remove it.
       - Not yet done.
         
Michael: Develop a full syntactically complete example demonstrating the
         AMI Test Data proposal.
         - In progress.

--------------------------
Call for patent disclosure:

- None.

-------------------------
Review of Meeting Minutes:

Arpad asked for any comments or corrections to the minutes of the January 9th
meeting.  Michael moved to approve the minutes.  Ambrish seconded the motion.
There were no objections.

--------------
New Discussion:

wave_size, "block size", number_of_rows cleanup:
Arpad referred to an email he had sent to the ATM list in response to Michael's
email about wave_size and block size.  Arpad noted that "block size" only
appears in the sections defining the BCI parameters and Rx_Use_Clock_Input.  He
said that reading those sections in context implied that block size really means
the wave_size parameter in the AMI_GetWave function signature.  Arpad noted that
"block_size" never appears in the specification.  He said that number_of_rows is
is the equivalent concept (number of samples) for the impulse response input to
AMI_Init.  Arpad said that the minor editorial BIRD Michael had suggested might
be as simple as replacing instances of "block size" with "wave_size".

Michael referred to the email he had originally sent out on this point.  He said
we all agree that wave_size is explicitly defined in terms of samples.  He
agreed that we could just replace instances of "block size" with wave_size, but
he said he would prefer that we instead change the language to use "block size"
when we are referring to the number of bits.  He said that in the industry he
typically hears people referring to the number of bits when they talk about
passing blocks of data.

Ambrish said he agreed with Michael's assertion that people often think of
blocks in terms of the number of bits.  However, he noted that page 216 of IBIS
7.2 already explicitly states:
  The segments are not required to be equally sized and are not required to
  contain an integer number of bits.
(Note: the group noted that "bits" in this sentence really means "symbols")

Ambrish suggested that in sections where we use block size, we might follow it
it with "(wave_size)" the first time it's used.  The first time we use wave_size
we might note that wave_size * sample_interval / symbol_time is equal to the
number of symbols in the block.

Walter said that we should avoid overloading any of these terms.  He said that
we all understand sample_interval and wave_size.  The overall waveform is broken
into blocks made up of some number of samples, which means they're also some
number of UIs.  It's just a block of data passed to AMI_GetWave that represents
a section of the waveform that covers a certain time period.  Someone may say
that their DFE settles in some number of UIs, and anyone can easily convert that
to how many blocks with wave_size samples that will take.  Whether we think of
time(s), samples, or UI is fine, but a block of data has nothing to do with
that.

Curtis agreed with Walter.  He said the concept of "block size" is independent
of whether one wants to quantify it in terms of s, ps, UI, samples, etc.  The
unit really only becomes important when we are defining a parameter (e.g.,
wave_size) that will quantify the block size by way of a numeric value.  Walter
and Curtis said they weren't sure that much confusion existed about block size.
Walter said there's no confusion from EDA vendors and no confusion from the
people who have been successfully building models.

Arpad said he thought a clarification BIRD would be helpful to ensure that no
one is confused by these terms and concepts.  Michael gave himself an AR to
develop a new clarification BIRD.  He said he would also tweak BIRD229 and
create a BIRD229.1 to adopt such changes.

Syntactically Complete Example for BIRD229:
Michael again noted that the original 2009 SiSoft AMI example, from which he'd
created his BIRD229 example, used 8 samples per bit and a total waveform length
of 100k bits.  Michael said that he didn't want his example files to have to
cover 100k bits, so he'd reduced the total waveform length to 1024 bits.  He
said that coincidentally 1024 also happened to be the number of samples
(number_of_rows) in the impulse response passed to AMI_Init.  He said he was
thinking of changing the total waveform length just to be sure that those
values being the same didn't confuse anyone into thinking they are related.
Curtis said he didn't think anyone would come to the (incorrect) conclusion
that the number of bits in the waveform should be the same as the number of
samples in the impulse response, but if Michael wanted to change the waveform
length it wouldn't hurt anything.  Walter said that as a practical matter 8
samples/bit is barely at the edge of minimum reasonable resolution, and 32
samples/bit would be a more reasonable example.  However, Michael and Ambrish
said that this is just a syntax example and going to 32 samples per bit would
simply increase the size of the example files.  Walter agreed that it was okay
to use 8 samples/bit for the example.

- Michael: Motion to adjourn.
- Curtis: Second.
- Arpad: Thank you all for joining.

New ARs:

Michael: Develop a new clarification BIRD to more clearly define relationships
         between concepts, terms, and parameters such as block, block size,
         wave_size, etc.
         
Michael: Develop a new BIRD229.1 to incorporate any changes related to the new
         clarification BIRD.

-------------
Next meeting: 23 January 2024 12:00pm PT
-------------

IBIS Interconnect SPICE Wish List:

1) Simulator directives
